package com.dongdongmovie.service.impl;

import com.dongdongmovie.mapper.TMovieMapper;
import com.dongdongmovie.pojo.PageResult;
import com.dongdongmovie.pojo.TMovie;
import com.dongdongmovie.pojo.TMovieExample;
import com.dongdongmovie.service.TMovie_Service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.List;

@Service
@DubboService
public class TMovie_ServiceImpl implements TMovie_Service {

    //注入mapper
    @Autowired
    private TMovieMapper tMovieMapper;

    //根据id查询
    @Override
    public TMovie showbyId(Integer id) {
        TMovie  t = new TMovie();
        t.setId(id);
        List<TMovie> show = tMovieMapper.show(t);
        return show.get(0);
    }

    //查询数据
    @Override
    public PageResult<TMovie> show(TMovie tMovie, Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<TMovie> show = tMovieMapper.show(tMovie);
        PageInfo<TMovie> pageInfo = new PageInfo<>(show);
        PageResult<TMovie> pageResult = new PageResult<>(pageNum,pageSize,pageInfo.getTotal(),pageInfo.getList(),pageInfo.getPages());
        return pageResult;
    }

    //添加数据
    @Override
    public int add(TMovie tCharnnel) {
        return tMovieMapper.insertSelective(tCharnnel);
    }

    //修改数据
    @Override
    public int update(TMovie tCharnnel) {
        return tMovieMapper.updateByPrimaryKeySelective(tCharnnel);
    }

    //删除数据
    @Override
    public int delete(Integer id) {
        return tMovieMapper.deleteByPrimaryKey(id);
    }

    //删除全部
    @Override
    public int deleteall(Integer[] rids) {
        TMovieExample te = new TMovieExample();
        TMovieExample.Criteria criteria = te.createCriteria();
        criteria.andIdIn(Arrays.asList(rids));
        return tMovieMapper.deleteByExample(te);
    }

    //上架
    @Override
    public int updateputaway(Integer rid) {
        TMovie tMovie = tMovieMapper.selectByPrimaryKey(rid);
        tMovie.setUp(1);
        return tMovieMapper.updateByPrimaryKeySelective(tMovie);
    }

    //下架
    @Override
    public int updatesoldout(Integer rid) {
        TMovie tMovie = tMovieMapper.selectByPrimaryKey(rid);
        tMovie.setUp(2);
        return tMovieMapper.updateByPrimaryKeySelective(tMovie);
    }

    //审核通过
    @Override
    public int updatetg(Integer rid) {
        TMovie tMovie = tMovieMapper.selectByPrimaryKey(rid);
        tMovie.setExamine(1);
        return tMovieMapper.updateByPrimaryKeySelective(tMovie);
    }

    //审核未通过
    @Override
    public int updatebtg(Integer rid) {
        TMovie tMovie = tMovieMapper.selectByPrimaryKey(rid);
        tMovie.setExamine(0);
        return tMovieMapper.updateByPrimaryKeySelective(tMovie);
    }

    //查询最新影视数据
    @Override
    public List<TMovie> showbydate() {
        return tMovieMapper.showbydate();
    }

    //查询推荐影视数据
    @Override
    public List<TMovie> showbytName(String tName) {
        TMovie tMovie = new TMovie();
        tMovie.settName(tName);
        return tMovieMapper.show(tMovie);
    }

    //查询分类影视数据
    @Override
    public PageResult<TMovie> showbyIdall(TMovie tMovie ,Integer pageNum,Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<TMovie> show = tMovieMapper.show(tMovie);
        PageInfo<TMovie> pageInfo = new PageInfo<>(show);
        return new PageResult<TMovie>(pageNum,pageSize,pageInfo.getTotal(),pageInfo.getList(),pageInfo.getPages());
    }

    //查询按时间排序后数据
    @Override
    public PageResult<TMovie> showbyIdallshijian(TMovie tMovie, Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<TMovie> show = tMovieMapper.showbydates(tMovie);
        PageInfo<TMovie> pageInfo = new PageInfo<>(show);
        return new PageResult<TMovie>(pageNum,pageSize,pageInfo.getTotal(),pageInfo.getList(),pageInfo.getPages());
    }

    //按评分排序
    @Override
    public PageResult<TMovie> showbyIdallpingfen(TMovie tMovie, Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<TMovie> show = tMovieMapper.showbypingfen(tMovie);
        PageInfo<TMovie> pageInfo = new PageInfo<>(show);
        return new PageResult<TMovie>(pageNum,pageSize,pageInfo.getTotal(),pageInfo.getList(),pageInfo.getPages());
    }

    //根据搜索查询数据
    @Override
    public PageResult<TMovie> showbyIdallpingfens(TMovie tMovie, Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<TMovie> show = tMovieMapper.showbyname(tMovie);
        PageInfo<TMovie> pageInfo = new PageInfo<>(show);
        return new PageResult<TMovie>(pageNum,pageSize,pageInfo.getTotal(),pageInfo.getList(),pageInfo.getPages());
    }
}
